<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Login extends CI_Controller {
	public $system;

     public function __construct(){
        parent::__construct();
        $this->load->library('session');
        $this->load->model('system_mdl');
        $this->load->model('users_mdl');
        $this->system = $this->system_mdl->get_one();
        /** 加载路径函数 */
        $this->load->helper('url');

        if($this->system->status == 2){
            show_error('当前站点未开启');
        }
    }

    /**
     * 验证码
     */
    public function captcha(){
        $this->load->helper('captcha');
        $vals = array(
            'word'      => '',
            'img_path'  => './captcha/',
            'img_url'   => base_url('/captcha/'),
            'font_path' => './public/fonts/droidsansmono__.ttf',
            'img_width' => '277',
            'img_height'    => 60,
            'expiration'    => 1,
            'word_length'   => 6,
            'font_size' => 25,
            'img_id'    => 'Imageid',
            'pool'      => '0123456789abcdefghijklmnopqrstuvwxyz',

            // White background and border, black text and red grid
            'colors'    => array(
                'background' => array(255, 255, 255),
                'border' => array(215, 255, 255),
                'text' => array(0, 0, 0),
                'grid' => array(255, 40, 40)
            )
        );

        $cap = create_captcha($vals);

        //将验证码值转换为一次性
        $this->session->set_userdata('word', $cap['word']);
        $this->session->mark_as_flash('word');


        return $cap;
    }

    /**
     * 刷新验证码
     */
    public function reset_cap(){
        if(!$this->input->is_ajax_request()){
            show_404();
            exit;
        }

        $captcha = $this->captcha();

        echo $captcha['image'];
    }

    public function index()
    {
        $suser = $this->session->suser;

        if(!empty($suser)){
            redirect(site_url('home'));
        }else{
            //用户登录验证
            if (!$this->input->is_ajax_request()){
                //获取验证码
                $captcha = $this->captcha();
                $data = ['cap' => $captcha['image']];
                $this->load->view('default/login_index',$data);
            }else{
                $post = $this->input->post(NULL,TRUE);

                $word = empty($_SESSION['word']) ? '' : $_SESSION['word'];
                if($word != $post['cap']){
                    die('验证码错误！');
                }

                if(empty($post['username'])){
                	die('用户名不能为空');
                }

                if(empty($post['password'])){
                	die('密码不能为空');
                }

                $res = $this->suser($post['username'],md5($post['password']));

                if(!empty($res->error)){
                	die($res->error);
                }
                //print_r($res);
                
                $this->db->where('user_id',$res->user_id);
                 $this->db->select('id,user_id,username,user_name,group,email,address,unit,level_id,user_pid');
                $res_user = $this->users_mdl->get_one();

                $this->session->set_userdata('suser',(object)$res_user);

                echo 1;
            }
        }
    }

    /**
     * 用户退出
     */
    public function logout(){
        session_destroy();
        redirect(site_url('login'));
    }

    protected function suser($username,$password){
    	//echo '用户接口发送';
    	$time = time();
    	$url = 'http://zbzmall.com/api/get_user?username='.$username.'&password='.$password.'&time='.$time.'&yz='.md5($time.'zbzkj123');

    	$res = $this->get_cunt($url);

    	return $res;
    }

     /** 发送请求 */
    protected function get_cunt($url,$data = null){
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,false);
        if(!empty($data)){
            curl_setopt($ch,CURLOPT_POST,1);
            curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
        }
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        $output = curl_exec($ch);
        curl_close($ch);
        $jsoninfo = json_decode($output);
        return $jsoninfo;
    }

}

/**
 * 关于系统数据同步方式问题
 * 假如 一个 市级分公司 新发展了一个推广商 如果将数据同步到结算系统
 *     A. 后台根据商城后台订单数据 直接手动填写到 结算系统。
 *         疑问： i. 后台怎么会知道这个新加的一个商铺是一个推广商
 *                ii. 所有数据全部由总公司填写， 需不需要为客户添加登录权限？
 *     B. 由市级分公司负责人在结算系统手动添加推广商
 *         疑问：  数据的真实性
 *
 *     C. 市级分公司 每开通一个账号，则 数据同步到 结算系统中
 *         优点： 数据的及时性和同步性
 *         缺点： 数据的真实性（结算系统可以根据会员系统的商铺计算金额，但是不能获取该商铺是否收费）
 *         其他： 逻辑处理需要重新写一部分，大概2天时间
 *
 */
